브라우저에 URL를 넣었을 때 어찌 되는가?

다음과 같은 순서로 진행 됩니다.

  1. 브라우저에 URL 주소를 넣습니다.
  2. 브라우저에서 URL를 해석합니다.
    1. URL 문법이 맞지 않다면 기본 검색 엔진으로 검색
    2. URL 문법이 맞다면, URL의 호스트 부분을 인코딩합니다.
      1. HSTS 확인하고 있으면 HTTPS로 요청합니다.
      2. 없으면 HTTP로 요청합니다.
  3. 브라우저는 캐싱 된 DNS 기록들에서 해당 URL에 대응되는 IP 주소가 있는지 확인합니다.
    1. DNS의 목적은 편의성 제공이며, 캐싱은 네트워크 트래픽을 조절하고 데이터 전송 시간을 줄입니다.
    2. DNS query로 먼저 브라우저 Cache를 확인합니다.
    3. 없다면 OS Cache를 확인합니다.
    4. 없다면 Router Cache를 확인합니다.
    5. 없다면 ISP Cache를 확인합니다.
  4. 요청한 URLCache에 없다면 ISPDNS서버가 해당 Domain 호스팅하고 있는 서버의 IP 주소를 찾기 위해 DNS query를 ??에 보냅니다.
  5. 브라우저가 서버와 TCP 커넥션을 합니다.
  6. 브라우저가 웹 서버에 HTTP 요청을 합니다.
  7. 서버가 요청을 처리하고 response를 생성합니다.
  8. 서버가 HTTP response를 보냅니다.
  9. 브라우저가 받은 response의 body부분으로 content를 보여줍니다.
    1. DOM tree 생성을 합니다.
    2. CSSOM tree를 생성합니다.
    3. 렌더링 tree 생성합니다.
    4. Javascript 파싱과 실행을 합니다.
    5. 레이아웃을 그립니다.
    6. 페이팅을 합니다.
      1. reflow
      2. repaint

#web #browser #interview #frontend